import pandas as pd
import os

df = pd.read_excel('测试/微信支付账单流水文件(20250430-20250731)_20250731143833.xlsx')

# 找到实际数据的起始行（包含列名的行）
header_row_index = 15

# 重新读取数据，设置正确的列名
# 第15行是列名，从第16行开始是数据
df_data = pd.read_excel('测试/微信支付账单流水文件(20250430-20250731)_20250731143833.xlsx', header=header_row_index)

# 删除完全为空的行
df_data = df_data.dropna(how='all')

# 重新设置列名，使用第15行的数据作为列名
new_columns = df.iloc[header_row_index].tolist()
# 清理列名，去除可能的空格和特殊字符
cleaned_columns = [str(col).strip() if pd.notna(col) else f'Unnamed: {i}' for i, col in enumerate(new_columns)]
df_data.columns = cleaned_columns

# 将输出写入文件
with open('测试/xlsx_output.txt', 'w', encoding='utf-8') as f:
    f.write('实际数据的列名: ' + str(df_data.columns.tolist()) + '\n\n')
    f.write('前20行交易数据:\n')
    f.write(str(df_data.head(20)) + '\n\n')
    
    # 检查是否有'收/支'列
    if '收/支' in df_data.columns:
        f.write('收/支 column values:\n')
        f.write(str(df_data['收/支'].head(20)) + '\n\n')
        
        # 统计收入和支出的数量
        income_count = df_data[df_data['收/支'] == '收入'].shape[0]
        expense_count = df_data[df_data['收/支'] == '支出'].shape[0]
        
        f.write(f'收入记录数: {income_count}\n')
        f.write(f'支出记录数: {expense_count}\n\n')
    else:
        f.write('收/支 column not found\n')
    
    # 显示一些示例数据
    f.write('交易时间、收/支、金额示例:\n')
    if '交易时间' in df_data.columns and '收/支' in df_data.columns and '金额(元)' in df_data.columns:
        sample_data = df_data[['交易时间', '收/支', '金额(元)']].head(20)
        f.write(str(sample_data) + '\n\n')
    
    # 查看数据类型
    f.write('数据类型:\n')
    f.write(str(df_data.dtypes) + '\n\n')

print('Output saved to 测试/xlsx_output.txt')